1. Field of the Invention
The present invention relates to the use of neural networks in information searching.
2. Description of the Related Art
The problem of search, in the context of networks and electronic storage media, has become increasingly important in recent years. For example, between the vast amounts of information available on the Internet, corporate networks, individual users desktops, frequently the information sought by the user often exists somewhere. However, the question becomes: how to deliver that information to the user, given the frequently ambiguous and contradictory language constructs, and without imposing an undue burden on the user. Furthermore, the amount of information on the Internet and the number of new users inexperienced at web searching are both growing rapidly.
Search engines attempt to return hyperlinks to web pages that presumably contain information in which a user is interested. Generally, search engines base their determination of the user's interest on search terms (called a “search query”) entered by the user. The aim of the search engine is to provide links to high quality, relevant results to the user based on the search query. Typically, the search engine accomplishes this by matching the terms in the search query to a corpus of pre-stored web pages. Web pages that contain the user's search terms are “hits” and are returned to the user.
In an attempt to increase the relevancy and quality of the web pages returned to the user, a search engine may attempt to sort the list of hits so that the most relevant and/or highest quality pages are at the top of the list of hits returned to the user. For example, the search engine may assign a rank or score to each hit, where the score is designed to correspond to the relevance or importance of the web page. Determining appropriate scores can be a difficult task. For one thing, the importance of a web page to the user is inherently subjective and depends on the user's interests, knowledge, and attitudes.
There is, however, much that can be determined objectively about the relative importance of a web page. Conventional methods of determining relevance are based on the contents of the web page, or on assigning a degree of importance to a web page based on the link structure of the web page.
The overriding goal of a search engine is to return the most desirable set of links for any particular search query. Thus, it is desirable to improve the ranking algorithm used by search engines and to therefore provide users with better search results.
Many popular search engines, such as those available from Google, Microsoft, Yahoo, etc. utilize an indexing system for identifying documents available on the Internet, identifying words in those documents, creating an index of those words, and then responding to user queries by analyzing the index and delivering the documents that (in the view of the search engines) are most relevant to the users query. The problem therefore can be framed in the form of relevance, in other words, how to construct an algorithm that identifies the most relevant document out of what is typically a very large number of documents that contain the search terms. The same problem, on a somewhat smaller scale, exists with documents stored on corporate networks, LANs, WANs, and the individual desktop hard drives.
Various approaches exist to attempt to incorporate the concept of relevance into search engine technology. For example, whether the document is cited in other documents (for example, through hyperlinks that point to that particular document) can be used as one measure of relevance. Other information in the document, or about the document (metadata) can also be used in a determination of relevance.
However, conventional search engine technology suffers from a number of problems. One such problem can be described as “the tyranny of the majority.” For example, a search for “apple” using Google will first present to the user documents relating to Apple Computer, even though the user may be searching for documents relating to edible apple (the fruit), or Adam's apple. This problem is due to the linguistic consequence of the fact that many words in the English language (as well as other languages) have multiple meanings, or trigger multiple contexts/associations in people's minds—the “apple” example being one of them.
Therefore, to search for apple cider, the user has to type in “apple cider” as the search parameter. This will place the results relating to apple cider closer to the top of the results presented to the user. However, even here the problem is contextual—all documents that discuss apple cider do not necessarily have to mention the word “cider” (for example, they can discuss drinks made from apple, where it is clear to the reader from the context that “cider” is the drink at issue, but without using the word “cider”), or they can simply discuss “cider,” but not mention the word “apple” (but nonetheless be highly relevant to the user).
The concept of neural networks has been in existence for several decades, and it is assumed, for purposes of this description, that the reader is familiar with how neural networks operate. A neural network is essentially defined by two entities—a basic element, called a neuron, and a definition of how the neurons are connected to each other, which is also called neural network topology. The possibility of applying neural networks to the problem of search has been raised repeatedly in the past. The problem, however, has been that researchers have attempted to apply universal neural network architectures to the problem of text search, and the results have been disappointing. The primary reason why neural networks have not been effectively used in text and document searching is therefore topological—“recomputing” the standard neural network is very computationally intensive.
In the context of text searching, a conventional neuron corresponds to a word. Thus, a universal neural network has a basic element (neuron) for every word in the dictionary, and “connections” from each to neuron to every other neuron. Typically such a universal neural network also has weight coefficients on the connections between the words (elements, or neurons). Applying such a neural network to document analysis, it becomes apparent that the computational problem essentially grows exponentially with the number of documents being analyzed. Such a neural network can be readily applied to analysis of a handful of documents, or perhaps a few dozen. However, applying such a neural network to the hundreds of millions (or billions) of documents available on the Internet is an insurmountable problem. Furthermore, advances in computational hardware do not offer a ready solution, since the number of documents that need analysis also continues to grow.
Accordingly, there is a need in the art for a system and method that takes advantage of neural network concepts and efficiently applies them to context-based searching of documents.